/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package LogicaNegocio.Usuarios;

import LogicaNegocio.Biblioteca.Multa;
import LogicaNegocio.Biblioteca.Orden;
import java.util.List;

/**
 * Esta clase en java defiene las caracteristicas y atributos que
 * definen a usuarios de la biblioteca.
 *
 * @author sebaxtian
 * Archivo: Usuario.java
 * @version 1.0
 * Fecha: sáb abr 10 21:04:50 COT 2010
 */


public class Usuario {

    //Atributos de clase
    private int identificacionUsuario;
    private String primerApellido;
    private String segundoApellido;
    private String primerNombre;
    private String segundoNombre;
    private String direccion;
    private String telefono;
    private String email;
    private int valorDeuda;
    private boolean activo;
    private List<Multa> listaMultas;
    private List<Orden> listaOrdenes;

    /**
     * Crea un usuario con atributos nulos.
     */
    public Usuario() {
        this.identificacionUsuario = -1;
        this.primerNombre = null;
        this.primerApellido = null;
        this.segundoNombre = null;
        this.segundoApellido = null;
        this.direccion = null;
        this.telefono = null;
        this.email = null;
        this.valorDeuda = -1;
        this.activo = false;
        this.listaMultas = null;
        this.listaOrdenes = null;
    }

    /**
     * Crea un usuario con atributos definidos como argumentos.
     * 
     * @param identificacionUsuario
     * @param primerNombre
     * @param primerApellido
     * @param segundoNombre
     * @param segundoApellido
     * @param direccion
     * @param telefono
     * @param email
     * @param activo
     */
    public Usuario(int identificacionUsuario, String primerNombre, String primerApellido,
            String segundoNombre, String segundoApellido, String direccion, String telefono, String email, boolean activo) {
        this.identificacionUsuario = identificacionUsuario;
        this.primerNombre = primerNombre;
        this.primerApellido = primerApellido;
        this.segundoNombre = segundoNombre;
        this.segundoApellido = segundoApellido;
        this.direccion = direccion;
        this.telefono = telefono;
        this.email = email;
        this.valorDeuda = -1;
        this.activo = activo;
        this.listaMultas = null;
        this.listaOrdenes = null;
    }

    /**
     * Obtiene el numero de identificacion de usuario.
     *
     * @return identificacionUsuario
     */
    public int getIdentificacionUsuario() {
        return identificacionUsuario;
    }

    /**
     * Cambia el numero de identificacion de usuario.
     *
     * @param identificacionUsuario
     */
    public void setIdentificacionUsuario(int identificacionUsuario) {
        this.identificacionUsuario = identificacionUsuario;
    }

    /**
     * Obtiene el primer nombre de usuario.
     *
     * @return primerNombre
     */
    public String getPrimerNombre(){
        return primerNombre;
    }

    /**
     * Cambia el primer nombre de usuario.
     *
     * @param primerNombre
     */
    public void setPrimerNombre(String primerNombre){
        this.primerNombre = primerNombre;
    }

    /**
     * Obtiene el segundo nombre de usuario.
     *
     * @return segundoNombre
     */
    public String getSegundoNombre(){
        return segundoNombre;
    }

    /**
     * Cambia el segundo nombre de usuario.
     *
     * @param segundoNombre
     */
    public void setSegundoNombre(String segundoNombre){
        this.segundoNombre = segundoNombre;
    }

    /**
     * Obtiene el primer apellido de usuario.
     *
     * @return primerApellido
     */
    public String getPrimerApellido() {
        return primerApellido;
    }

    /**
     * Cambia el primer apellido de usuario.
     *
     * @param primerApellido
     */
    public void setPrimerApellido(String primerApellido) {
        this.primerApellido = primerApellido;
    }

    /**
     * Obtiene el segundo apellido de usuario.
     *
     * @return segundoApellido
     */
    public String getSegundoApellido() {
        return segundoApellido;
    }

    /**
     * Cambia el segundo apellido de usuario.
     *
     * @param segundoApellido
     */
    public void setSegundoApellido(String segundoApellido) {
        this.segundoApellido = segundoApellido;
    }
    
    /**
     * Obtiene la direccion de residencia del usuario.
     * 
     * @return direccion
     */
    public String getDireccion() {
        return direccion;
    }

    /**
     * Cambia la direccion de residencia del usuario.
     *
     * @param direccion
     */
    public void setDireccion(String direccion) {
        this.direccion = direccion;
    }

    /**
     * Obtiene el numero de telefono del usuario.
     *
     * @return telefono
     */
    public String getTelefono() {
        return telefono;
    }

    /**
     * Cambia el numero de telefono del usuario.
     *
     * @param telefono
     */
    public void setTelefono(String telefono) {
        this.telefono = telefono;
    }
    
    /**
     * Obtiene el email del usuario.
     * 
     * @return email
     */
    public String getEmail() {
        return email;
    }

    /**
     * Cambia el email del usuario.
     *
     * @param email
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * Obtiene el valor de la deuda.
     *
     * @return valorDeuda
     */
    public int getValorDeuda() {
        return valorDeuda;
    }

    /**
     * Cambia el valor de la deuda.
     *
     * @param valorDeuda
     */
    public void setValorDeuda(int valorDeuda) {
        this.valorDeuda = valorDeuda;
    }

    /**
     * Obtiene el estado de activo del registro de usuario.
     *
     * @return activo
     */
    public boolean getActivo() {
        return activo;
    }

    /**
     * Cambia el estado de activo del registro de usuario.
     *
     * @param activo
     */
    public void setActivo(boolean activo) {
        this.activo = activo;
    }

    /**
     * Obtiene la lista de multas que tiene el usuario.
     *
     * @return listaMultas
     */
    public List<Multa> getListaMultas() {
        return listaMultas;
    }

    /**
     * Cambia la lista de multas que tiene el usuario.
     *
     * @param listaMultas
     */
    public void setListaMultas(List<Multa> listaMultas) {
       this.listaMultas = listaMultas;
    }

    /**
     * Obtiene la lista de ordenes de libros que genera el usuario.
     *
     * @return listaOrdenes
     */
    public List<Orden> getListaOrdenes() {
        return listaOrdenes;
    }

    /**
     * Cambia la lista de ordenes de libros que genera el usuario.
     *
     * @param listaOrdenes
     */
    public void setListaOrdenes(List<Orden> listaOrdenes) {
        this.listaOrdenes = listaOrdenes;
    }
}
